home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / keystate / keystate.frm next >
Text File  |  1995-06-13  |  3KB  |  87 lines

  1. VERSION 2.00
  2. Begin Form frmKeyState 
  3.    BackColor       =   &H8000000F&
  4.    Caption         =   "Scroll, Num & Caps Lock Status"
  5.    ClientHeight    =   3840
  6.    ClientLeft      =   3270
  7.    ClientTop       =   1755
  8.    ClientWidth     =   5415
  9.    Height          =   4245
  10.    Left            =   3210
  11.    LinkTopic       =   "Form1"
  12.    ScaleHeight     =   3840
  13.    ScaleWidth      =   5415
  14.    Top             =   1410
  15.    Width           =   5535
  16.    Begin TextBox txtKey 
  17.       BorderStyle     =   0  'None
  18.       Height          =   3450
  19.       Left            =   30
  20.       MultiLine       =   -1  'True
  21.       TabIndex        =   2
  22.       Top             =   0
  23.       Width           =   5370
  24.    End
  25.    Begin SSPanel pnlDisplay 
  26.       BevelInner      =   1  'Inset
  27.       BevelOuter      =   0  'None
  28.       Height          =   375
  29.       Left            =   4020
  30.       TabIndex        =   1
  31.       Top             =   3435
  32.       Width           =   1395
  33.       Begin Label LabelKeyState 
  34.          Alignment       =   2  'Center
  35.          BackColor       =   &H8000000F&
  36.          BackStyle       =   0  'Transparent
  37.          Height          =   225
  38.          Left            =   45
  39.          TabIndex        =   3
  40.          Top             =   75
  41.          Width           =   1275
  42.       End
  43.    End
  44.    Begin SSPanel pnlOne 
  45.       BevelInner      =   1  'Inset
  46.       BevelOuter      =   0  'None
  47.       Height          =   375
  48.       Left            =   -15
  49.       TabIndex        =   0
  50.       Top             =   3435
  51.       Width           =   4080
  52.    End
  53.    Begin Timer Timer1 
  54.       Interval        =   250
  55.       Left            =   6360
  56.       Top             =   4560
  57.    End
  58. End
  59. 'Use the "GetKeyState" API along with these three
  60. 'constants and a timer to notify users that their
  61. 'Scroll Lock, Num Lock & Caps Lock keys are in use.
  62. Declare Function GetKeyState% Lib "User" (ByVal nVirtKey%)
  63. Const VK_CAPITAL = &H14
  64. Const VK_NUMLOCK = &H90
  65. Const VK_SCROLL = &H91
  66.  
  67. Sub Form_Load ()
  68. txtKey.Text = "Use the API in the ""General Declarations"" section and the code in the Timer sub-routine to display Scroll, Num & Caps Lock status information.  Although Microsoft provides a .VBX to accomplish this, it is more effective to display status information in this manner. You can also change foreground and background colors to give the appearance of an L.E.D.  NOTE: It may be more benefical to use a seperate panel for each of the three keys."
  69. End Sub
  70.  
  71. Sub Timer1_Timer ()
  72. Dim Numlock%, Scrolllock%, Capslock%
  73. Dim res$
  74.  
  75.  
  76. Capslock% = GetKeyState%(VK_CAPITAL)
  77. Numlock% = GetKeyState%(VK_NUMLOCK)
  78. Scrolllock% = GetKeyState%(VK_SCROLL)
  79.  
  80. If Capslock% And 1 Then res$ = res$ + "CAPS ON "
  81. If Numlock% And 1 Then res$ = res$ + "NUM ON "
  82. If Scrolllock% And 1 Then res$ = res$ + "SCROLL ON"
  83.  
  84. LabelKeyState.Caption = res$
  85. End Sub
  86.  
  87.